package br.com.jspl.app.devices;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.net.URL;

import javax.swing.*;

public class FontePulsadora extends Componente {
	/**
	 * 
	 */
	private static final long serialVersionUID = -558415778818910319L;
	public Toolkit mtk;
	public Image imgLigado;
	public boolean Circuitoligado; //Vriavel define se a fonte esta ligada
	public boolean Estado; //Pode ser zero ou um;
	private ImageIcon icoLigado,icoDesligado;
	
	public FontePulsadora (ProtoBoard p) {
		super("Fonte Pulsadora", "GeradorCinza.png", "GeradorIco.png",p);
		URL nimage2 = getClass().getClassLoader().getResource("br/com/jspl/imagens/GeradorAzul.png");
		CriarEntradasSaidas(0,1);
	    //Posicoes se o componente estive-se no canto superior esquerdo
	    EntradasSaidas[0] = new conexao(new Point(5,2),1);  //E1
	    Estado=false;
	    EntradasSaidas[0].setEstado(Estado);
	    mtk = Toolkit.getDefaultToolkit();      
	    //Abrir os arquivos das imagens        
	 	imgLigado = mtk.getImage(nimage2);
	 	Circuitoligado = false;	 	
	 	icoLigado = new ImageIcon(imgLigado);
	 	icoDesligado = new ImageIcon(getImagem()); 
	}
	
	public FontePulsadora (String n,String nimage, String nimageico,String nimage2,ProtoBoard p) {
		super(n, nimage, nimageico,p);
	    CriarEntradasSaidas(0,1);
	    //Posicoes se o componente estive-se no canto superior esquerdo
	    EntradasSaidas[0] = new conexao(new Point(5,2),1);  //E1
	    Estado=false;
	    EntradasSaidas[0].setEstado(Estado);
	    mtk = Toolkit.getDefaultToolkit();      
	    //Abrir os arquivos das imagens        
	 	imgLigado = mtk.getImage(getClass().getClassLoader().getResource("br/com/jspl/imagens/" + nimage2));
	 	Circuitoligado = false;	 	
	 	icoLigado = new ImageIcon(imgLigado);
	 	icoDesligado = new ImageIcon(getImagem()); 
	}
	public void desenhar(Graphics g) {
		if (EntradasSaidas[0].getEstado()) setIcon(icoLigado);
		else setIcon(icoDesligado);
	}
	
	//setIcon(new ImageIcon(imgLigado));
	public Componente NovoComp() {
		  Componente r;
	      r =  new FontePulsadora("Fonte Pulsadora", "GeradorCinza.png", "GeradorIco.png","GeradorAzul.png",getProtoboard());      
	      return r;
	}
	
	public void AtivarComponente() {
		Cabo cabo;
		Circuitoligado = true;
		EntradasSaidas[0].setEstado(Estado);		
		cabo=(Cabo) EntradasSaidas[0].getCompLigado();
		cabo.setEstado(Estado);
	}
	protected boolean Resultado() {
		return Estado;
	}
	
	public void inverteEstado() {
		Estado = !Estado;
		EntradasSaidas[0].setEstado(Estado);
	}
}
